home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / info-service / archie / clients / archie-one-liner.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  1992-01-12  |  1.2 KB  |  52 lines

  1. #! /bin/sh
  2. # A much expanded version of the one-liner script posted by 
  3. # cedman@golem.ps.uci.edu (Carl Edman) to comp.unix.shell.
  4. # Mark Moraes, University of Toronto.
  5. ARCHIE=${ARCHIE-quiche.cs.mcgill.ca}
  6. case $# in
  7. 0)    echo "Usage: $0 [-regex|-subcase|-sub] [-status] [-max maxhits] [-cmd archie_command] searchstring ..." >&2; exit 1;;
  8. esac
  9. timesort="cat"
  10. (
  11.  echo "unset status"
  12.  echo "set maxhits 100"
  13.  echo "set search exact"
  14.  echo "set sortby none"
  15.  while :
  16.  do
  17.     case "$1" in
  18.     -e|-exact)    echo "set search exact"; shift;;
  19.     -r|-regex) echo "set search regex"; shift;;
  20.     -c|-subcase) echo "set search subcase"; shift;;
  21.     -s|-sub) echo "set search sub"; shift;;
  22.     -status) echo "set status"; shift;;
  23.     -m|-max)    echo "set maxhits $2"; shift; shift;;
  24.     -cmd)    echo "$2"; shift; shift;;
  25.     -t)    timesort="sort +2nr -3 +0Mr -1 +1nr -2"; shift;;
  26.     *)    break;;
  27.     esac
  28.  done
  29.  for i
  30.  do
  31.     echo "prog $i" 
  32.  done
  33. ) |
  34.     rsh $ARCHIE -l archie "" |
  35.     awk '/Host/ {
  36.         host = $2;
  37.     }
  38.     /Last/ {
  39.         cury = $6;
  40.     }
  41.     /Location:/ {
  42.         dir = $2;
  43.     }
  44.     $0 ~ /FILE/ || $0 ~ /DIRECTORY/ {
  45.         if (index($6, ":"))
  46.             year = cury;
  47.         else year = $6;
  48.             printf "%3s %2s %4s %7s /%s:/%s/%s\n", \
  49.                 $4, $5, year, $3, host, dir, $7;
  50.     }' |
  51.     $timesort
  52.